package com.xtck.ha.fault.modules.controller;

import com.xtck.ha.fault.modules.pojo.vo.FaultTaskVO;
import com.xtck.ha.fault.schedule.DynamicTaskService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;

@RestController
@RequestMapping("/task")
public class TaskController {
    @Resource
    private DynamicTaskService dynamicTaskService;
//    @Resource
//    private TaskConfigRepository taskConfigRepository;  // 假设有查询数据库的 Repository

    /**
     * 根据任务名称启动定时任务
     */
    @PostMapping("/start")
    public String startTask(@RequestParam FaultTaskVO faultTaskVO) {

        // 2. 定义任务逻辑
        Runnable task = () -> {
            System.out.println("执行动态任务: " + faultTaskVO.getTaskName() + " | 时间: " + new Date());
            // 这里写具体的业务逻辑
        };

        // 3. 启动任务
        dynamicTaskService.startOrUpdateTask(faultTaskVO.getTaskName(), faultTaskVO.getCron(), task);
        return "任务启动成功: " + faultTaskVO.getTaskName();
    }

    /**
     * 停止任务
     */
    @PostMapping("/stop")
    public String stopTask(@RequestParam String taskName) {
        dynamicTaskService.stopTask(taskName);
        return "任务停止成功: " + taskName;
    }
}
